home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_02 / allison / vargs1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-30  |  508 b   |  31 lines

  1. LISTING 2 - Extracts integers/string argument pairs
  2. /* vargs1.c */
  3. #include <stdio.h>
  4.  
  5. void int_string_pairs(size_t npairs,...)
  6. {
  7.     int n;
  8.     char *s;
  9.     char *p = (char *) &npairs + sizeof npairs;
  10.  
  11.     while (npairs--)
  12.     {
  13.         n = *(int *) p;
  14.         p += sizeof n;
  15.         s = *(char **) p;
  16.         p += sizeof s;
  17.         printf("%d, %s\n",n,s);
  18.     }
  19. }
  20.  
  21. main()
  22. {
  23.     int_string_pairs(3,1,"one",2,"two",3,"three");
  24.     return 0;
  25. }
  26.  
  27. /* Output:
  28. 1, one
  29. 2, two
  30. 3, three
  31.